Aspects of the present invention relate to the field of message broker networks, and particularly to the resolution of producer to consumer paths in a broker network.
Publish-subscribe systems provide a powerful message broker solution driven by business rules. In these systems, diverse applications can exchange information in dissimilar forms, with brokers handling the processing required for the information to arrive in the right place in the correct format, according to the rules that are defined. This exchange does not require that applications implement any additional communication protocols beyond their own conventions and requirements.
A data flow defines connected nodes in a publish-subscribe system, where each node defines an operation to occur with respect to a received message. Nodes typically process a single message at a time and feed single messages to downstream nodes. At the node, the content of the messages may be processed, transformed, and a new message generated to route to another node or location including the transformed data. A data flow represents the sequence of operations performed on a message on the basis of rules that operate on the message's format and content.
In message broker environments there is the potential that multiple message brokers could offer particular translations (services) and that a route has to be dynamically created in order to achieve the final transformation goal. For instance, a consumer in a publish/subscribe paradigm may require a message from “the broker network” in a first format. However, that message may be originally published onto the network in a second format by the producer. In this situation, a route through the broker network of the publish/subscribe paradigm may be dynamically generated such that the message experiences the appropriate transformations to convert the message from the second format to the first format. In addition, such a route must also implement a suitable transmission path from the message producer to the consumer. The messages in a publish/subscribe paradigm are typically non-persistent and therefore timeliness is of paramount importance.
In order to achieve a level of high-availability, in such an environment, it is possible that multiple paths be created within the broker network such that for each producer there is a guarantee that there is at least one good path through the network to the consumer, at any given point in time.